// Define function pointer types for both RECALL and LEARNING DLLs
typedef int (*NSCreateNetwork)(void *&pNeuralNetwork, int networkType);
typedef int (*NSDestroyNetwork)(void *pNeuralNetwork);
typedef int (*NSGetInputOutputInfo)(void *pNeuralNetwork, int &numInputs, int &numOutputs);
typedef int (*NSGetResponse)(void *pNeuralNetwork, int exemplars, float *inputData, float *outputData);
typedef int (*NSGetSensitivity)(void *pNeuralNetwork, int exemplars, float *inputData, float *&sensitivityData, float dither);
typedef int (*NSLoadWeights)(void *pNeuralNetwork, const char *weightsPathName);
typedef int (*NSSaveWeights)(void *pNeuralNetwork, const char *weightsPathName);
typedef int (*NSRandomizeWeights)(void *pNeuralNetwork);
typedef int (*NSResetNetwork)(void *pNeuralNetwork);
// Define function pointer types for LEARNING DLLs only
typedef int (*NSTrain)(void *pNeuralNetwork, int epochs, int exemplars, float *inputData, float *desiredData, int cvExemplars, float *cvInputData, float *cvDesiredData);
typedef int (*NSGetBestCost)(void *pNeuralNetwork, float &bestCost);
typedef int (*NSSetBestCost)(void *pNeuralNetwork, float bestCost);
typedef int (*NSGetBestWeightsPathName)(void *pNeuralNetwork, char *bestWeightsPathName, int bufferLength, int &pathNameLength);
typedef int (*NSSetBestWeightsPathName)(void *pNeuralNetwork, const char *bestWeightsPathName);
typedef int (*NSGetCrossValidationEnabled)(void *pNeuralNetwork, bool &crossValidationEnabled);
typedef int (*NSSetCrossValidationEnabled)(void *pNeuralNetwork, bool crossValidationEnabled);
typedef int (*NSGetSaveBestWeightsEnabled)(void *pNeuralNetwork, bool &saveBestWeightsEnabled);
typedef int (*NSSetSaveBestWeightsEnabled)(void *pNeuralNetwork, bool saveBestWeightsEnabled);
typedef int (*NSGetSaveBestWeightsForTraining)(void *pNeuralNetwork, bool &saveBestWeightsForTraining);
typedef int (*NSSetSaveBestWeightsForTraining)(void *pNeuralNetwork, bool saveBestWeightsForTraining);
typedef int (*NSSetAutoComputeInputNormCoeff)(void *pNeuralNetwork, bool autoComputeInputNormCoeff);
typedef int (*NSGetAutoComputeInputNormCoeff)(void *pNeuralNetwork, bool &autoComputeInputNormCoeff);
typedef int (*NSSetAutoComputeOutputNormCoeff)(void *pNeuralNetwork, bool autoComputeOutputNormCoeff);
typedef int (*NSGetAutoComputeOutputNormCoeff)(void *pNeuralNetwork, bool &autoComputeOutputNormCoeff);
typedef int (*NSRemoveInputNormalization)(void *pNeuralNetwork);
typedef int (*NSRemoveOutputNormalization)(void *pNeuralNetwork);
typedef int (*NSSetInputNormMin)(void *pNeuralNetwork, float inputNormMin);
typedef int (*NSGetInputNormMin)(void *pNeuralNetwork, float &inputNormMin);
typedef int (*NSSetInputNormMax)(void *pNeuralNetwork, float inputNormMax);
typedef int (*NSGetInputNormMax)(void *pNeuralNetwork, float &inputNormMax);
typedef int (*NSSetOutputNormMin)(void *pNeuralNetwork, float outputNormMin);
typedef int (*NSGetOutputNormMin)(void *pNeuralNetwork, float &outputNormMin);
typedef int (*NSSetOutputNormMax)(void *pNeuralNetwork, float outputNormMax);
typedef int (*NSGetOutputNormMax)(void *pNeuralNetwork, float &outputNormMax);
typedef int (*NSSetNormalizeInputByChannel)(void *pNeuralNetwork, bool normalizeInputByChannel);
typedef int (*NSGetNormalizeInputByChannel)(void *pNeuralNetwork, bool &normalizeInputByChannel);
typedef int (*NSSetNormalizeOutputByChannel)(void *pNeuralNetwork, bool normalizeOutputByChannel);
typedef int (*NSGetNormalizeOutputByChannel)(void *pNeuralNetwork, bool &normalizeOutputByChannel);
typedef int (*NSGetCrossValidationCostData)(void *pNeuralNetwork, float *cvCostData);
typedef int (*NSGetCostData)(void *pNeuralNetwork, float *costData);
typedef int (*NSGetNumberOfEpochsTrained)(void *pNeuralNetwork, int &numberOfEpochsTrained);
typedef int (*NSGetEpochOfBestCost)(void *pNeuralNetwork, int &epochOfBestCost);
typedef int (*NSSeedRandom)(void *pNeuralNetwork, unsigned int seed);
// Declare function pointers for both RECALL and LEARNING DLLs
NSCreateNetwork createNetwork;
NSDestroyNetwork destroyNetwork;
NSLoadWeights loadWeights;
NSSaveWeights saveWeights;
NSRandomizeWeights randomizeWeights;
NSResetNetwork resetNetwork;
NSGetInputOutputInfo getInputOutputInfo;
NSGetResponse getResponse;
NSGetSensitivity getSensitivity;
// Declare function pointers for LEARNING DLLs only